Skip to content

fix(deps): raise PyJWT and cryptography floors past known advisories - #162

Merged
imran-siddique merged 1 commit into
mainfrom
fix/pyjwt-cryptography-floors
Sep 7, 2026
Merged

fix(deps): raise PyJWT and cryptography floors past known advisories#162
imran-siddique merged 1 commit into
mainfrom
fix/pyjwt-cryptography-floors

Conversation

@imran-siddique

Copy link
Copy Markdown
Member

Closes the seven advisories OpenSSF Scorecard reports against this repo. Dependabot reports none of them, because these are open floors in pyproject.toml / requirements.txt rather than a lockfile it tracks.

Six of the seven are in libraries doing security work, which is why these are worth raising rather than dismissing.

PyJWT, floored at >=2.8.0

Advisory Fixed in
PYSEC-2026-120 2.12.0
PYSEC-2026-175 2.13.0
PYSEC-2026-177 2.13.0
PYSEC-2026-178 2.13.0
PYSEC-2026-179 2.13.0
PYSEC-2025-183 (CVE-2025-45768) last affected 2.10.1

That last one is disputed by the maintainer, on the grounds that key length is chosen by the calling application rather than the library. Worth knowing rather than citing as a straight vulnerability; the floor covers it either way.

cryptography, floored at >=42.0.0

PYSEC-2026-3552: PKCS#7 EnvelopedData decryption exposes a Bleichenbacher oracle through distinguishable errors. Fixed in 50.0.0, which is also what cmcp already requires, so this brings the repo in line with the org rather than ahead of it.

Scope

This is a floor raise, not a pin. pip already resolves to current versions today, so nothing about a fresh install changes. What it removes is a resolution that could legally pick a vulnerable version — which is exactly what an open floor on a JWT library should not permit.

  • integrations/comply54: both, in pyproject.toml and requirements.txt
  • integrations/sentinel: both, in requirements.txt
  • integrations/ramen-ai-cmcp: already pins cryptography==50.0.1, unchanged

🤖 Generated with Claude Code

https://claude.ai/code/session_01XbDBXDWWvMFa7c2jGgyq9t

Scorecard's Vulnerabilities check reports seven against this repo while
Dependabot reports none, because these are open floors rather than a
lockfile it tracks. Six of the seven are in libraries doing security
work, which is why they are worth raising rather than dismissing.

PyJWT was floored at >=2.8.0. Five advisories sit above that floor and
below 2.13.0 (PYSEC-2026-120, -175, -177, -178, -179), plus
PYSEC-2025-183 / CVE-2025-45768 on weak encryption at 2.10.1 and below.
That last one is disputed by the maintainer on the grounds that key
length is the caller's choice; the floor covers it either way.

cryptography was floored at >=42.0.0. PYSEC-2026-3552 is a Bleichenbacher
oracle: PKCS#7 EnvelopedData decryption exposes distinguishable errors.
Fixed in 50.0.0, which is also what cmcp already requires, so this brings
the repo in line rather than ahead.

A floor raise, not a pin: pip already resolves to current versions today.
What this removes is a resolution that could legally pick a vulnerable
one, which is exactly what an open floor on a JWT library should not
permit.

comply54 declares both in pyproject.toml and requirements.txt; sentinel
declares both in requirements.txt. ramen-ai-cmcp already pins
cryptography==50.0.1 and needed nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XbDBXDWWvMFa7c2jGgyq9t
@imran-siddique
imran-siddique merged commit 5ff9a34 into main Sep 7, 2026
16 checks passed
@imran-siddique
imran-siddique deleted the fix/pyjwt-cryptography-floors branch September 7, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant